import java.sql.SQLOutput;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

class Person{
	public String name;
	public int age;

	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}

	@Override
	public boolean equals(Object obj) {
		Person person=(Person) obj;
		if(this.age==person.age&&this.name.equals(person.name)) {
			return true;
		}
		return false;
	}
}
public class Collection {
	public static void main1(String[] args) {
		Person person=new Person("zhangsan",18);
		Person person1=new Person("zhangsan",19);
		System.out.println(person.equals(person1));
	}
}
class Solution {
	public static void main2(String[] args) {
		int [] array=new int[]{2,7,2};
		System.out.println(smallestRangeII(array, 1));
	}
	public static int smallestRangeII(int[] nums, int k) {
		int maxindex=0;
		int max=nums[0];
		int mindex=0;
		int min=nums[0];
		for(int i=1;i<nums.length;i++) {
			if(nums[i]>max) {
				maxindex=i;
			}
			if(nums[i]<min) {
				mindex=i;
			}
		}
		nums[mindex]+=k;
		if(nums[mindex]>nums[maxindex]-k) {
			nums[maxindex]-=0;
		} else {
			nums[maxindex]-=k;
		}
		Arrays.sort(nums);
		return nums[nums.length-1]-nums[0];
	}

	public static void main3(String[] args) throws ParseException {
		Date now=new Date();
		System.out.println(now);
		Date d1=new Date(1000);//获得1970年1月1日1000毫秒之后的时间
		System.out.println(d1);
		System.out.println(now.after(d1));//判断现在是不是在d1时间之后
		System.out.println(now.before(d1));
		System.out.println(now.compareTo(d1));

		Date d2=new Date(0);//获得起初的时间戳
		System.out.println(d2.compareTo(d1));
		Date d3=new Date(0);
		System.out.println(d2.compareTo(d3));

		SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String datestr=format.format(now);
		System.out.println(datestr);

		//将一个字符串再转化回去
		String dstr="2012-09-19 12:30:56";
		Date date=format.parse(dstr);
		System.out.println(date);

		//获得时间戳
		System.out.println(date.getTime());

		//将一个时间戳转化为一个日期类型
		Date date1=new Date(1348029056000L);
		System.out.println(date1);
	}

	public static void main(String[] args) throws ParseException {
		Calendar c2=Calendar.getInstance();
		System.out.println(c2.getTime());
		//将Calendar转化成date类型
		Date date=c2.getTime();
		System.out.println(date);


		String str="2024-10-21 12:56:56";
		SimpleDateFormat format=new SimpleDateFormat();
		Date date1=format.parse(str);
		//将Calendar转化成date类型
		Calendar c1=Calendar.getInstance();
		c1.setTime(date1);
		System.out.println("年份:"+c1.get(Calendar.YEAR));
		System.out.println("月份:"+c1.get(Calendar.MONTH)+1);
		System.out.println(c1.get(Calendar.DATE));
		System.out.println(c1.get(Calendar.DAY_OF_WEEK)-1);

		//设置指定内容.
		c1.add(Calendar.YEAR,2003);
		c1.add(Calendar.DATE,19);

	}
}
class ListNode {
	int val;
	ListNode next;

	public ListNode(int val) {
		this.val = val;
	}

	public static void main(String[] args) {
		List<List<ListNode >> list=new ArrayList<>();
		ListNode node1=new ListNode(1);
		ListNode node2=new ListNode(1);
		ListNode node3=new ListNode(1);
		ListNode node4=new ListNode(1);
	}
}
class Demo1 {
	public static void main(String[] args) {
		Scanner scanner1=new Scanner(System.in);
//		Scanner scanner=new Scanner(System.in);
//		System.out.println("请输入整形值");
//		int len=scanner.nextInt();
//		System.out.println("请输入double值");
//		double len1= scanner.nextDouble();
//		System.out.println("请输入字符串");
//		//当前面有数据的输入的时候，采用next的方法
//		String str=scanner.next();
		int cnt=0;
		while(true) {
			if(cnt>3) {
				System.out.println("输入次数过多不允许输入");
				break;
			}
			try {
				System.out.println("请输入第一个操作数");
				String num1=scanner1.next();
				System.out.println("请输入第二个操作数");
				String num2=scanner1.next();
				int num=Integer.parseInt(num1);
				int num3=Integer.parseInt(num2);
				System.out.println(num+num3);
				cnt++;
			} catch (Exception e) {
				System.out.println("输入操作数有误");
				break;
			}
		}
	}
}
class Demo2{
	public static void main(String[] args) {
		double pi=3.1415927;
		//DecimalFormat decimal = new DecimalFormat();
		System.out.println(new DecimalFormat("0.00").format(pi));
		System.out.println(new DecimalFormat("00.0000").format(pi));
		//取所有的整数
		System.out.println(new DecimalFormat("#").format(pi));
		//以百分号的形式打印出来
		System.out.println(new DecimalFormat("#.##%").format(pi));
		long  c  =  299792458;
		System.out.println(new DecimalFormat(",###").format(c));
		System.out.println(new  DecimalFormat("#.#####E0").format(c));  //2.99792E8
		//显示为两位整数的科学计数法，并取四位小数
		System.out.println(new  DecimalFormat("00.####E0").format(c));  //29.9792E7
		//每三位以逗号进行分隔。

	}
}
class Demo3{
	public static void main1(String[] args) {
		List<Integer> list=new ArrayList<>();
		list.add(1);
		list.add(4);
		list.add(3);
		list.add(2);
		//在不指定数据的类型的时候，任何数据都可以进行插入，会自动的进行装箱
		list.remove(new Integer(3));//删除指定的数据
		System.out.println(list);
		List<Integer> list1=new ArrayList<>();
		list1.add(7);
		list1.add(4);
		list1.add(8);
		list1.add(10);
		//保留交集，指的是list中只剩下交集
		list.retainAll(list1);
		System.out.println(list);
		//删除交集，在list中删除交集
		list.removeAll(list1);
		System.out.println(list);
	}

	public static void main(String[] args) {
		List<Integer> list1=new ArrayList<>();
		list1.add(1);
		list1.add(4);
		list1.add(3);
		list1.add(2);
		ListIterator<Integer> it=list1.listIterator();
		while(it.hasNext()) {
			System.out.println(+it.nextIndex()+" " +it.next());
		}
		System.out.println("===================");
		//开头不能进行反向迭代，因为没有上一个就不能进行
		while(it.hasPrevious()) {
			System.out.println(it.previousIndex()+" "+it.previous());
		}
	}
}
